#include <halcpuctrl.h>

/*********************************************************************************
* 
* hal_io8_write - 硬件寄存器写入
* 
* DESCRIPTION
*/

void hal_io8_write
    (
    uint_t ioaddr,
    u8_t   val
    )
    {
    ARCH_IO8_WRITE (ioaddr, val);
    return;
    }

/*********************************************************************************
* 
* hal_io8_read - 硬件寄存器读取
* 
* DESCRIPTION
*/

u8_t hal_io8_read
    (
    uint_t ioaddr
    )
    {
    u8_t retdata;

    ARCH_IO8_READ (ioaddr, retdata);

    return retdata;
    }

/*********************************************************************************
* 
* hal_io16_write - 硬件寄存器写入
* 
* DESCRIPTION
*/

void hal_io16_write
    (
    uint_t ioaddr,
    u16_t  val
    )
    {
    ARCH_IO16_WRITE (ioaddr, val);
    return;
    }

/*********************************************************************************
* 
* hal_io16_read - 硬件寄存器读取
* 
* DESCRIPTION
*/

u16_t hal_io16_read
    (
    uint_t ioaddr
    )
    {
    u16_t retdata;

    ARCH_IO16_READ (ioaddr, retdata);

    return retdata;
    }

/*********************************************************************************
* 
* hal_io32_write - 硬件寄存器写入
* 
* DESCRIPTION
*/

void hal_io32_write 
    (
    uint_t ioaddr, 
    u32_t  val
    )
    {
    ARCH_IO32_WRITE (ioaddr, val);
    
    return;
    }

/*********************************************************************************
* 
* hal_io32_read - 硬件寄存器读取
* 
* DESCRIPTION
*/

u32_t hal_io32_read 
    (
    uint_t ioaddr
    )
    {
    u32_t retdata;

    ARCH_IO32_READ (ioaddr, retdata);
    
    return retdata;
    }

/*********************************************************************************
* 
* hal_system_is_die - 系统崩溃
* 
* DESCRIPTION
*/

void hal_system_is_die
    (
    char_t * errmsg
    )
    {
    kprintf ("hyperps system is die! - %s", errmsg);
    FOREVER;
    return;
    }
